"""
Core event system package initialization.

This module exports the main components of the event system for easy import,
providing a comprehensive event-driven architecture for continual learning.
"""

# === Basic Event Types ===
from .event_types import (
    EventType,
    BaseEventData,
    TaskEvent,
    StrategyEvent,
    EventFactory,
)

# === Basic Event Handlers ===
from .handlers import (
    BaseEventHandler,
    FunctionalEventHandler,
    ChainableEventHandler,
    ConditionalEventHandler,
    AsyncEventHandler,
    BatchEventHandler,
    RetryEventHandler,
    event_handler,
    with_error_handling,
)

# === Basic Event Dispatcher ===
from .dispatcher import (
    DispatcherStats,
    EventDispatcher,
    global_dispatcher,
    global_async_dispatcher,
    temporary_handler,
)

# Advanced modules - imported on demand to avoid circular dependencies and dataclass issues
# from .advanced_event_types import *
# from .advanced_handlers import *
# from .advanced_dispatcher import *

__all__ = [
    # === Basic Event Types ===
    "EventType",
    "BaseEventData",
    "TaskEvent",
    "StrategyEvent",
    "EventFactory",
    # === Basic Event Handlers ===
    "BaseEventHandler",
    "FunctionalEventHandler",
    "ChainableEventHandler",
    "ConditionalEventHandler",
    "AsyncEventHandler",
    "BatchEventHandler",
    "RetryEventHandler",
    "event_handler",
    "with_error_handling",
    # === Basic Event Dispatcher ===
    "DispatcherStats",
    "EventDispatcher",
    "global_dispatcher",
    "global_async_dispatcher",
    "temporary_handler",
]